Systems and methods for car shopping using messaging framework

ABSTRACT

Disclosed embodiments provide devices, methods, and computer-readable storage media for determining information of an object from a captured image. Further, the disclosed device responds to a user input by capturing, with the camera, image data representing an object. The device then transmits, via a messaging application through a network interface to a server, the image data and a request for information relating to the object. The object information is received via the messaging application through the network from the server and is displayed on the display screen.

TECHNICAL FIELD

The present disclosure generally relates to accessing object informationusing mobile devices. More specifically, this disclosure relates todevices and methods for identifying objects from captured images andvideos communicated through inbuilt communication services and fordetermining the information about the identified object.

BACKGROUND

Shopping for a certain kind of object requires knowing the identity ofthe object and location to purchase the identified object. Suchidentification, while currently possible through various search engines,often requires installation of a specialized application, in addition tothe search engine itself, to purchase the identified object. Moreover,while generic search engines are good at providing information about anobject, they lack inbuilt shopping functionality, that is, the abilityto engage in e-commerce without installation of additional software.Although some online shopping services provide search capability, suchcapability is limited to their own inventory. Also, the amount ofinformation relevant to the object that is made available to the user isoften limited. In view of these and other shortcomings and problems withexisting technology, improved systems and methods for identifyingobjects and accessing their information is desired.

SUMMARY

Disclosed embodiments provide devices and methods for determining objectinformation from a captured image.

Consistent with embodiments, a mobile device for determining objectinformation is provided. The device may include at least one memorydevice storing operating system with a built-in messaging application.The device may include a camera. The device may also include a networkinterface. The device may also include a display screen. The device alsoincludes at least one processor executing instructions to performoperations.

The operations may include responding to a user input by capturing, withthe camera, image data representing an object. The operations may alsoinclude transmitting, via the messaging application through the networkinterface to a server, the image data and a request for informationrelating to the object. Requesting information relating to the objectfrom the server may include generating temporary images based on thecaptured image; comparing the temporary images to a plurality ofreference images; assigning scores to the reference images, based onsimilarity to the test images; aggregating scores assigned to thereferences images by the test images; identifying a reference image witha highest aggregated score as the identity of the object; anddetermining information related to the object based on the identity ofthe object. The operations may further include receiving the objectinformation via the messaging application through the network interfacefrom the server. The operations may also include displaying the objectinformation on the display screen.

Consistent with embodiments, non-transitory computer-readable storagemedia may store instructions that are executable by at least oneprocessor of mobile device to perform methods disclosed herein. A methodmay include responding to a user input by capturing, with the camera,image data representing an object. The method may also includetransmitting, via the messaging application through the networkinterface to a server, the image data and a request for informationrelating to the object. Requesting information relating to the objectfrom the server may include generating temporary images based on thecaptured image; comparing the temporary images to a plurality ofreference images; assigning scores to the reference images, based onsimilarity to the test images; aggregating scores assigned to thereferences images by the test images; identifying a reference image witha highest aggregated score as the identity of the object; anddetermining information related to the object based on the identity ofthe object. The method may further include receiving the objectinformation via the messaging application through the network interfacefrom the server. The method may also include displaying the objectinformation on the display screen.

Consistent with the embodiments, methods for determining objectinformation are provided. A method may include responding to a userinput by capturing, with the camera, image data representing an object.The method may also include transmitting, via the messaging applicationthrough the network interface to a server, the image data and a requestfor information relating to the object. Requesting information relatingto the object from the server may include generating temporary imagesbased on the captured image; comparing the temporary images to aplurality of reference images; assigning scores to the reference images,based on similarity to the test images; aggregating scores assigned tothe references images by the test images; identifying a reference imagewith a highest aggregated score as the identity of the object; anddetermining information related to the object based on the identity ofthe object. The method may further include receiving the objectinformation via the messaging application through the network interfacefrom the server. The method may also include displaying the objectinformation on the display screen.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate several examples, and, togetherwith the description, serve to explain the disclosed principles, In thedrawings:

FIG. 1 is a schematic diagram illustrating an exemplary systemenvironment used to determine information about objects, consistent withdisclosed embodiments;

FIG. 2 is a component diagram of an exemplary user device, consistentwith the present disclosure;

FIG. 3 is a component diagram of an exemplary object identificationservice provider consistent with the present disclosure;

FIG. 4 is a flowchart of an exemplary method for providing informationof objects, consistent with the present disclosure;

FIGS. 5A and 5B are diagrams showing exemplary post determinationmessage of object information from a captured image, displayed on a userdevice of a user, consistent with the present disclosure; and

FIG. 5C is a diagram showing an exemplary post determination message ofobject information from a captured video, displayed on a user device ofa user, consistent with the present disclosure.

DETAILED DESCRIPTION

Reference will now be made in detail to exemplary embodiments, examplesof which are illustrated in the accompanying drawings and disclosedherein. Wherever convenient, the same reference numbers will be usedthroughout the drawings to refer to the same or like parts. For ease ofdiscussion, the present disclosure may describe embodiments in thecontext of online shopping, such as shopping for a car. It is to beunderstood, however, that disclosed embodiments are not limited toonline shopping applications. Rather, the disclosed devices and methodsare applicable to object identification and determination of informationfrom a captured image or video for many other purposes and, in fact, arenot limited to any particular industry or field.

FIG. 1 is a schematic diagram of an exemplary system environment thatmay be configured to provide information about an object in an image,consistent with disclosed examples. The components and arrangementsshown in FIG. 1 are not intended to limit the disclosed examples, as thecomponents used to implement the disclosed processes and features mayvary.

In accordance with the disclosed embodiments, an object identificationsystem 100 may include an object identification service provider 110, auser device 120, a network 130, a server cluster 140, a cloud service150, and a third-party server. Object identification service provider110 operates at least one server 111. Server 111 may be a computer-basedsystem including computer system components, desktop computers,workstations, tables, handheld computing devices, memory devices, and/orinternal network(s) connecting the components. Server 111 is discussedin additional detail with respect to FIG. 3, below.

User device 120 may be a tablet, smart phone, multifunctional watch, orany suitable device with computing and text message service capabilitywhich enable user device 120 to communicate with server 111 through anetwork 130. User device 120 is discussed in additional detail withrespect to FIG. 2 below.

Components of system 100 may communicate via network 130 which, in someembodiments, may comprise one or more interconnected wired or wirelessdata networks that exchange data between devices such as user device120, server 111 of object identification service provider 110, servercluster 140, and/or cloud service 150. Network 130 may be may be asecured or unsecured network and may be implemented as, for example, theinternet, a wired Wide Area Network (WA), a wired Local Area Network(LAN), a wireless LAN (e.g., IEEE 802.11, Bluetooth, etc.), a wirelessWAN (e.g., WiMAX), or the like. Each component in system 100 maycommunicate bi-directionally with other components of system 100 eitherthrough network 130 or through one or more direct communication links(not shown).

Third-party server 160 is associated with a third party and maycommunicate with object identification service provider 110. The thirdparty may be, for example, a car dealership, a car manufacturer, acompany or other suitable data source managing data related to cars.Third-party server 160 may provide information to object identificationservice provider 110. For example, in some embodiments, third-partyserver 160 may provide images and videos of a car identified by objectidentification service provider 110. In some embodiments, third-partyserver 160 may provide location data specifying a car dealership wherean identified model and make car is available.

Cloud service 150 may include a physical and/or virtual storage systemassociated with cloud storage for storing data and providing access todata via a public network such as the Internet. Cloud service 150 mayinclude cloud services such as those offered by, for example, Amazon,Cisco, IBM, Google, Microsoft, Rackspace, or other entities.

In some embodiments, cloud service 150 comprises multiple computersystems spanning multiple locations and having multiple databases ormultiple geographic locations associated with a single or multiple cloudstorage service(s). As used herein, cloud service 150 refers to aphysical and virtual infrastructure associated with a single cloudstorage service. In some embodiments, cloud service 150 manages and/orstores data associated with mass execution of analytical models usingscale-out computing to predict optimal decisions.

Other components known to one of ordinary skill in the art may beincluded in object identification system 100 to process, transmit,provide and receive information consistent with the disclosed examples.In addition, although not shown in FIG. 1, components of system 100 maycommunicate each other through direct communications, rather thanthrough network 130.

FIG. 2 is a diagram of an exemplary user device 120, configured toperform functions of the disclosed methods, consistent with the presentdisclosure. User device 120 may be a mobile device with computingcapabilities, such as a tablet, a smartphone, or any combination ofthese devices and/or affiliated components. As shown, user device 120may include a camera 210, one or more processors 220, a display screen230, a network interface 240, and one or more memory devices 250 storingone or more operating systems 260, including an inbuilt messagingapplication 261. Camera 210 is used to generate a user-provided image ofan object to be identified, which is transmitted by messagingapplication 261 for identification, as described below.

Display screen 230 may include, for example, a liquid crystal display(LCD), a light emitting diode screen (LED), an organic light emittingdiode screens (OLED), a touch screen, or other known display screens.Display screen 230 may display various kinds of information, to bedescribed below.

Network interface 240 allows user device 120 to send and receiveinformation through network 130. Alternatively, or in addition, networkinterface 240 may establish direct wired or wireless connection betweenuser device 120 and other system components, such as server 111 (FIG.1).

Memory 250 may be, for example, a magnetic, semiconductor, tape,optical, removable, non-removable, or other type of storage device ortangible (i.e., non-transitory) computer-readable medium. Memory 250 maystore operating system 260, as well as data and mobile applications forperforming operations consistent with functions described below.

Operating system 260 may perform known operating system functions whenexecuted by processor 220. By way of example, the operating system mayinclude Android™, Apple OS X™, Unix™, Linux™, or others. Accordingly,examples of the disclosed invention may operate and function withcomputer systems running any type of operating system having an inbuiltmessaging application. Messaging application 261, when executed byprocessor 250, provides text messaging communication via network 130(FIG. 1).

FIG. 3 is a diagram of an exemplary object identification serviceprovider 110, configured to perform functions of the disclosed methods,consistent with the present disclosure. As shown in FIG. 3, objectidentification service provider 110 may include at least one server 111,one or more memory devices 310, one or more programs 311, an imagemanipulation module 312, an aggregation module 314, a scoring module313, one or more processors 320, and a network interface 330.

Server 111 may be a single server or may be configured as a distributedcomputer system including multiple servers or computers server clusters150 and/or cloud service 160) that interoperate to perform one or moreof the processes and functionalities associated with the disclosedembodiments.

Processor 320 may be one or more known or custom processing devicesdesigned to perform functions of the disclosed methods, such as a singlecore or multiple core processors capable of executing parallel processessimultaneously. For example, processor 320 may be configured withvirtual processing technologies. In certain embodiments, processor 320may use logical processors to simultaneously execute and controlmultiple processors. Processor 320 may be implement virtual machine, orother known technologies to provide the ability to execute, control, nm,manipulate, store, etc. multiple software processes, applications,programs, etc. In another embodiment, processor 320 may includemultiple-core processor arrangement (e.g., dual core, quad core, etc.)configured to provide parallel processing functionalities to allowobject identification service provider 110 to execute multiple processessimultaneously. One of ordinary skill in the art would understand thatother types of processor arrangements could be implemented that providefor the capabilities disclosed herein.

Network interface 330 may be implemented as one or more devices forreceiving signals or input from devices and providing signals or outputto one or more devices that allow data to be received and/or transmittedby object identification service provider 110.

Memory 310 may include one or more memory devices that store data andinstructions used to perform one or more features of the disclosedembodiments. For example, memory 310 may represent a tangible andnon-transitory computer-readable medium having stored therein computerprograms, sets of instructions, code, or data to be executed byprocessor 320. Memory 310 may include, for example, a removable memorychip (e.g., EPROM, RAM, ROM, DRAM, EE PROM, flash memory devices, orother volatile or non-volatile memory devices) or other removablestorage units that allow instructions and data to be accessed byprocessor 320.

Memory 310 may also include instructions that, when executed byprocessor 320, perform operations consistent with the functionalitiesdisclosed herein. Methods, systems, and devices consistent withdisclosed embodiments are not limited to separate programs or computersconfigured to perform dedicated tasks. For example, memory 310 mayinclude one or more programs 311 to perform one or more functions of thedisclosed embodiments. Moreover, processor 320 may execute one or moreprograms located remotely from system 100. For example, objectidentification service provider 110 may access one or more remoteprograms, that, when executed, perform functions related to disclosedembodiments.

Memory 310 may also include any combination of one or more relationaland/or non-relational databases 315 such as document management systems,Microsoft SQL databases, SharePoint databases, Oracle databases otherrelational databases, or non-relational databases such as Apache HBase.In some embodiments, memory 310 may comprise an associative arrayarchitecture, such as a key-value storage, for storing and rapidlyretrieving large amounts of information.

Object identification service provider 110 may also be communicativelyconnected to one or more remote memory devices (e.g., remote databases(not shown)) through network 130 or a different network. The remotememory devices may be configured to store information (e.g., structured,semi-structured, and/or unstructured data) and may be accessed and/ormanaged by object identification service provider 110. By way ofexample, the remote memory devices may be document management systems,Microsoft SQL databases, SharePoint databases, Oracle databases, orother relational databases. Systems and methods consistent withdisclosed embodiments however are not limited to separate databases oreven to the use of a database.

Programs 311 stored in memory 310 and executed by processor(s) 320 mayinclude one or more image manipulation module(s) 312, scoring module(s)313, and object identification module(s) 314. Programs 311 may be storedin an internal memory or external storage (not shown) in directcommunication with object identification service provider 110, such asone or more database or memory accessible over network 130. The internaldatabase and external storage may be a volatile or non-volatile, orother type of storage device or non-transitory computer-readable medium.

Image manipulation module 312 pre-processes and modifies the image togenerate multiple images using various features to assist the operationof scoring module 313. Modification features include cropping an image,flipping an image along x-axis and y-axis, skewing an image horizontallyand vertically, and changing color characteristics of the image bymanipulating the histogram.

Consistent with disclosed embodiments, object identification systemprovider 110 may execute one or more scoring modules, including but notlimited to scoring module 313. The purpose of scoring module 313 is tocompare the temporary images, that are, internally generated by imagemanipulation module 312 (from the user-provided image) to externalimages of known objects obtained from a database containing referenceimages, and to assign scores to the comparison results based onsimilarity. The scoring model used in scoring module 313 may be ananalytical model applying, for example, linear regression algorithms,boosted tree algorithms, and/or convolution neural networks. Scoringmodule 313 may leverage structured data (e.g., text data received fromuser device 120, data received from dealer website via an API, etc.) orunstructured data (e.g., images or videos of an object to be identified)to produce scores indicating the matching level associated. In oneexample, when an image of a car is transmitted by user device 120,externally obtained images of various car models and makes are assignedscores by scoring module 313. The scores may be based on thesimilarities of the externally obtained images of known car models andmakes to the car in the user-provided image. The scores may indicate theconfidence level the object identification service provider 110 has inuniquely identifying the car. The multiple images obtained using imagemanipulation module 312 may result in multiple scores associated witheach model and make.

Aggregate module 314 aggregates the scored entries to uniquely identifythe representation of an object in image data. Aggregation may involveadding scores of a certain identity of object in various images. Theentry with the highest score is regarded the identity of the object.

Database 315 in memory 310 may be used as a temporary or permanentstorage. Images received over network 130 to determine objectinformation may be stored in the database. Database 315 mighttemporarily store images generated by image manipulation module 312.Database 315 may also store reference images accessed by scoring module313 to assign scores to images generated by image manipulation module312.

Descriptions of the disclosed embodiments are not exhaustive and are notlimited to the precise forms or embodiments disclosed. Modifications andadaptions of the embodiments will be apparent from consideration of thespecification and practice of the disclosed embodiments. For example,the described implementations include hardware, firmware, and software,but systems and methods consistent with the present disclosure can beimplemented as hardware alone. Additionally, the disclosed embodimentsare not limited to the examples discussed herein.

FIG. 4 is a flow chart illustrating an exemplary method for objectinformation determination, consistent with the present disclosure. Fordiscussion purposes, the exemplary methods discussed in this disclosure(including the method 400) are described as performed by user device 120and server 111. In some examples, however user device 120 may performone or more disclosed method steps. In some examples, differentcomponents of object identification system 100 (such as objectidentification service provider 110 and third-party service 140) mayperform various steps of the methods in a distributed-computingconfiguration.

In step 411, camera 210 of user device 120 is utilized to capture animage or video of an object whose information needs to be determined.User device 120 may store data representing the image in memory 250.

In step 412, captured image data of the object in step 411 istransmitted to server 111 of object identification service provider 110.The transmission may be initiated in messaging application 231 which ispart of operating system 230 of user device 120. User device 120 usesnetwork interface 220 to transmit the image data through network 130 toserver 111. In some examples, an image captured previously by camera 210of user device 120 might be retrieved from memory 250 beforetransmitting it to server 111.

In step 413, server 111 may receive the image data representing theobject to be identified. The server 111 receives the data at networkinterface 330. The received image data may include, for example, stillimage and/or video data captured by camera 210 of user device 120.

In step 414, server 111 of object identification service provider 110determines if the received image data contains text, still image, orvideo data. If the received data is still image data, at step 415, thereceived image data is manipulated using image manipulation module 312executed by processor 320 of server 111. This manipulation may includecropping the image, flipping the image along x-axis and y-axis, skew theimage horizontally and vertically, change color characteristics of theimage. The image manipulation results in multiple images of the receivedimage data.

If the received data is video data, at step 416 the received data is“chunked,” that is, divided into groups of frames, to extract multipleimages using processor 320. The number of extracted images varies basedon the length of the video among other characteristics of the video.

If the received data is text, a direct search of text is performed toidentify the object with the text as its name.

In step 417, depending upon the type of data received, scoring module313 processes the images obtained from image manipulation module 312 orthe video chunked by frames. Scoring module 313 uses the multiple imagesobtained in step 415 and 416 to generate multiple identities of theobject in the received image data. Scoring module 313 associates scoreswith the possible identities of the images obtained in steps 415 and 416to generate matching identities. Aggregate module 314 then aggregatesscores of the matching identities.

In step 418, any EXIF information available in the image data receivedby server 111 is extracted to identify the location where the image wascaptured.

At step 419, the identity with the highest score is regarded as theidentity of the object n image. Once the identity of the object isdetermined server 111 may submit the identity information of an objectto a third-party server 160 to obtain additional information.Additionally, EXIF information extracted in step 418 may be submitted tothird-party server 160 to determine information about identified object.

At step 420, server 111 of object identification service provider 110transmits, via network interface 330, object information including thedetermined identity of the object and related object information. Theobject information is transmitted via text messaging to user device 120through network 130. In addition to the determined identity, thetransmitted object information may include a physical address of abrick-and-mortar store or a URL of an online website where theidentified object is available for sale.

At step 421, user device 120 receives the transmitted object informationvia messaging application 261 and network interface 240.

At step 422 the received object information is displayed on displayscreen 230 of user device 120.

FIG. 5A shows an exemplary user device 120 interacting with objectidentification service provider 110 to display information, received viamessaging application 261, about an object represented by a previouslycaptured image. As shown in FIG. 5A, a text conversation includes anoutgoing message 511 containing image data 512 representing a car(object) is transmitted over network 130 by messaging application 261.Below that the messaging application 261 displays incoming message 513with identity information and the physical address of a dealership wherethe identified object may be purchased.

FIG. 5B shows another exemplary interaction similar to FIG. 5A. FIG. 5Bdiffers from SA in that the displayed object information includes URL toa website where the identified object is available for sale or whereproduct reviews may be viewed.

FIG. 5C shows another exemplary interaction similar to FIG. 5A. As shownin FIG. 5C, messaging application 261 displays message 511 containingvideo image data 514.

Computer programs based on the written description and methods of thisspecification are within the skill of a software developer. The variousprograms or program modules can be created using a variety ofprogramming techniques. For example, program sections or program modulescan be designed by means of python, Java, C, C++, assembly language, orany such programming languages. One or more of such software sections ormodules can be integrated into a computer system, non-transitorycomputer readable media, or existing communications software.

Moreover, while illustrative embodiments have been described herein, thescope includes any and all embodiments having equivalent elements,modifications, omissions, combinations (e.g., of aspect across variousembodiments), adaptions or alterations based on the present disclosure.The elements in the claims are to be interpreted broadly based on thelanguage employed in the claims and not limited to examples described inthe present specification or during the prosecution of the application,which examples are to be construed as non-exclusive. Further, the stepsof the disclosed methods can be modified in any manner, including byreordering steps or inserting or deleting steps. It is intended,therefore, that the specification and examples be considered asexemplary only, with a true scope and spirit being indicated by thefollowing claims and their full scope of equivalents.

What is claimed is:
 1. A mobile device for determining objectinformation, the device comprising: at least one memory device storinginstructions, the instructions comprising an operating system with atext messaging application; a camera; a network interface; a displayscreen; and at least one processor executing the instructions to performoperations comprising: responding to a user input by capturing, with thecamera, image data representing a captured image of an object, preparinga text message compatible with a text message service for communication,transmitting, via the text messaging application through the networkinterface to a server, the text message, the image data, and a requestfor information relating to the object, wherein the server is configuredto prepare the information relating to the object in response to therequest, by: generating temporary images of an entirety of the capturedimage by executing at least one modification on the captured image,wherein the modification is one of flipping the captured image alongx-axis and y-axis, skewing the captured image horizontally andvertically, or changing color characteristics of the captured image bymanipulating a histogram; comparing each of the temporary images to aplurality of external images of known objects from a database ofreference images; assigning scores to the reference images based onsimilarity to each of the temporary images; aggregating the scoresassigned to the reference images; extracting available exchangeableimage file format (EXIF) information in the image data; identifying oneof the reference images with a highest aggregated score as an identityof the object; determining information related to the object based onthe identity of the object and the extracted EXIF information, whereinthe determining includes sending at least one of the identity of theobject and the extracted EXIF information to a third-party server; andpreparing a response text message compatible with the text messageservice based on the determined object information, comprising at leastone of: an identification of an entity offering the object for sale, anaddress of a website offering the object for sale, a physical locationwhere the object is sold, or information about the object based onphysical location of the extracted EXIF information; receiving theresponse text message via the text messaging application through thenetwork interface from the server, and displaying the object informationon the display screen via the text messaging application.
 2. The deviceof claim 1, wherein the object information comprises an identificationof the object.
 3. The device of claim 2, wherein the object informationof the object further comprises review information of the object.
 4. Thedevice of claim 1, wherein the camera comprises a video camera.
 5. Thedevice of claim 4, wherein: responding to the user input comprisescapturing video data representing the object by the mobile device; andthe operations further comprise extracting the image data of the objectfrom the video data by the server.
 6. The device of claim 5, wherein theserver is further configured to extract multiple image frames from thevideo data based on a characteristic of the video data.
 7. The device ofclaim 1, wherein the scores assigned to the reference images arecomputed based on at least one of a linear regression algorithm, aboosted tree algorithm, or a convolution neural network.
 8. The deviceof claim 1, wherein the server is further configured to: capture textwithin the captured image; and perform a search of the text to identifythe object in the captured image.
 9. The device of claim 1, wherein: theobject is a vehicle; and the plurality of external images of knownobjects are images of vehicles of known makes and models.
 10. Anon-transitory computer-readable storage medium storing instructionsthat, when executable by at least one processor of a mobile device,cause the mobile device to perform a method for determining vehicleinformation, the method comprising: responding to a user input bycapturing, with a camera, image data representing a captured image of avehicle; preparing a text message compatible with a text message servicefor communication; transmitting via a text messaging application througha network interface to a server, the text message and a request forinformation relating to the vehicle, the server being configured toprepare the information relating to the vehicle in response to therequest, by: generating temporary images of an entirety of the capturedimage by executing at least one modification on the captured image,comparing each of the temporary images to a plurality of extern alreference images of known makes and models from a database of referenceimages, assigning scores to the known makes and models of the referenceimages based on similarity to the temporary images, aggregating thescores assigned to the reference images of the known makes and models,to create an aggregated make and model score, extracting availableexchangeable image file format (EXIF) information in the image data,determining, based on the EXIF information, a physical location wherethe image data was captured, identifying one of the known makes andmodels with a highest aggregated make and model score as an identity ofthe vehicle, determining information related to the vehicle based on theidentity of the vehicle and the physical location where the image datawas captured, and preparing a response text message compatible with thetext message service based on the determined vehicle information, thevehicle information comprising at least one of: an identification of anentity offering the vehicle for sale; an address of a website offeringthe vehicle for sale; a physical location where the vehicle is sold; orinformation about the vehicle based on the physical location where theimage data was captured, receiving the response text mess age via thetext mess aging application through the network interface from theserver; and displaying the vehicle information on a display screen. 11.The non-transitory computer-readable medium of claim 10, whereindisplaying the vehicle information comprises displaying anidentification of the vehicle.
 12. The non-transitory computer-readablemedium of claim 11, wherein displaying the vehicle information furthercomprises displaying review information of the vehicle.
 13. Thenon-transitory computer-readable medium of claim 10, wherein the scoresassigned to the known makes and models are computed by applying at leastone of: a linear regression algorithm, a boosted tree algorithm, or aconvolution neural network.
 14. The non-transitory computer-readablemedium of claim 10, wherein the server is further configured to: capturetext within the captured image; and perform a search of the text toidentify the vehicle in the captured image.
 15. The non-transitorycomputer-readable medium of claim 10, wherein: responding to the userinput comprises capturing video data representing the vehicle by themobile device; and the server is further configured to extract multipleimage frames from the video data based on a characteristic of the videodata.
 16. A method performed by a mobile device, comprising: respondingto a user input by capturing, with a camera, image data representing acaptured image of a vehicle; preparing a text message compatible with atext message service for communication; transmitting via a text messaging application through a network interface to a server, the textmessage and a request for information relating to the vehicle, theserver being configured to prepare the information relating to thevehicle in response to the request, by: generating temporary images ofan entirety of the captured image by executing at least one modificationon the captured image, comparing each of the temporary images to aplurality of extern al reference images of known makes and models from adatabase of reference images, assigning scores to the known makes andmodels of the reference images based on similarity to the temporaryimages, aggregating the scores assigned to the reference images of theknown makes and models, to create an aggregated make and models core,extracting available exchangeable image file format (EXIF) informationin the image data, determining, based on the EXIF information, aphysical location where the image data was captured, identifying one ofthe known makes and models with a highest aggregated make and modelscore as an identity of the vehicle, determining information related tothe vehicle based on the identity of the vehicle and the physicallocation where the image data was captured, and preparing a responsetext message compatible with the text message service based on thedetermined vehicle information, the vehicle information comprising atleast one of: an identification of an entity offering the vehicle forsale; an address of a website offering the vehicle for sale; a physicallocation where the vehicle is sold; or information about the vehiclebased on the physical location where the image data was captured;receiving the response text message via the text messaging applicationthrough the network interface from the server; and displaying thevehicle information on a display screen.
 17. The method of claim 16,wherein displaying the vehicle information on the display screencomprises displaying an identification of the vehicle.
 18. The method ofclaim 16, wherein the scores assigned to the known makes and models arecomputed based on at least one of a linear regression algorithm, aboosted tree algorithm, or a convolution neural network.
 19. The methodof claim 16, wherein the server is further configured to: capture textwithin the captured image; and perform a search of the text to identifythe vehicle in the captured image.
 20. The method of claim 16, wherein:responding to the user input comprises capturing video data representingthe vehicle by the mobile device; and the server is further configuredto extract multiple image frames from the video data based on acharacteristic of the video data.